package com.sg.dto.biz.app.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @desc BuildSingleTargetComReqDto
 * @使用场景
 */
@Data
public class BuildSingleTargetComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 就职记录ID
     */
    @NotNull(message = "就职记录ID不能为空")
    @ApiModelProperty("就职记录ID")
    private String inductionRecordId;

    /**
     * 角色ID
     */
    @ApiModelProperty("角色ID")
    private String roleId;

    /**
     * 部门ID
     */
    @ApiModelProperty("部门ID")
    private String deptId;

    /**
     * 权重
     */
    @NotNull(message = "权重不能为空")
    @ApiModelProperty("权重")
    private Double weightValue;

    /**
     * 权重分值
     */
    @NotNull(message = "权重分值不能为空")
    @ApiModelProperty("权重分值")
    private Double weightScore;

    /**
     * 周期模式类型编码 FATHER_SON_CYCLE:父子周期 SINGLE_CYCLE:单周期 IRREGULAR_CYCLE:不规则周期
     */
    @NotNull(message = "周期模式类型编码不能为空")
    @ApiModelProperty("周期模式类型编码")
    private String periodicModeTypeCode;

    /**
     * 归属评价模板ID
     */
    @NotNull(message = "归属评价模板ID不能为空")
    @ApiModelProperty("归属评价模板ID")
    private String evaluationTemplateId;

    /**
     * 冗余评价主题ID
     */
    @NotNull(message = "冗余评价主题ID不能为空")
    @ApiModelProperty("冗余评价主题ID")
    private String evaluationSubjectId;

    /**
     * 目标周期任务进展状态 NOT_AT_THE:未开始 ONGOING:进行中 HAS_ENDED:已结束
     */
    @NotNull(message = "目标周期任务进展状态不能为空")
    @ApiModelProperty("目标周期任务进展状态")
    private String taskStatus;

    /**
     * 批次标识
     */
    @ApiModelProperty("批次标识")
    private String batchCode;

    /**
     * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
     */
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;

}
